home *** CD-ROM | disk | FTP | other *** search
/ Your Mobile: Alcatel / Alcatel 2005.iso / Collections / JpegView / setup.exe / HuffmanTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-15  |  1.7 KB  |  135 lines

  1. class HuffmanTable {
  2.    // $FF: renamed from: ├à NODE
  3.    NODE field_0 = new NODE();
  4.    public static int deCode_code = 0;
  5.  
  6.    public boolean addNode(int var1, int var2) {
  7.       return this.addNode(this.field_0, var1, var2);
  8.    }
  9.  
  10.    public boolean addNode(NODE var1, int var2, int var3) {
  11.       if (var2 == 1) {
  12.          if (var1.├░ == null) {
  13.             var1.├░ = new NODE(var3);
  14.             return true;
  15.          } else if (var1.├▒ == null) {
  16.             var1.├▒ = new NODE(var3);
  17.             return true;
  18.          } else {
  19.             return false;
  20.          }
  21.       } else if (var1.├░ == null) {
  22.          var1.├░ = new NODE();
  23.          return this.addNode(var1.├░, var2 - 1, var3);
  24.       } else if (!var1.├░.├▓ && this.addNode(var1.├░, var2 - 1, var3)) {
  25.          return true;
  26.       } else if (var1.├▒ == null) {
  27.          var1.├▒ = new NODE();
  28.          return this.addNode(var1.├▒, var2 - 1, var3);
  29.       } else {
  30.          return !var1.├▒.├▓ ? this.addNode(var1.├▒, var2 - 1, var3) : false;
  31.       }
  32.    }
  33.  
  34.    public void clear() {
  35.       if (this.field_0.├░ != null) {
  36.          this.clearNode(this.field_0.├░);
  37.       }
  38.  
  39.       if (this.field_0.├▒ != null) {
  40.          this.clearNode(this.field_0.├▒);
  41.       }
  42.  
  43.       this.field_0.├░ = null;
  44.       this.field_0.├▒ = null;
  45.       this.field_0 = null;
  46.    }
  47.  
  48.    public void clearNode(NODE var1) {
  49.       if (var1.├░ != null) {
  50.          this.clearNode(var1.├░);
  51.       }
  52.  
  53.       if (var1.├▒ != null) {
  54.          this.clearNode(var1.├▒);
  55.       }
  56.  
  57.       Object var2 = null;
  58.    }
  59.  
  60.    public boolean deCode(DECODE_PARAM var1) {
  61.       boolean var2 = false;
  62.       NODE var3 = this.field_0;
  63.       int var4 = var1.├é;
  64.       int var5 = var1.├é;
  65.       int var6 = var1.├â;
  66.       int var7 = var1.├ü[var4];
  67.       ++var4;
  68.       if (var7 == 255) {
  69.          while(var1.├ü[var4] == 255) {
  70.             ++var4;
  71.          }
  72.  
  73.          if (var1.├ü[var4] != 0) {
  74.             return false;
  75.          }
  76.  
  77.          ++var4;
  78.       }
  79.  
  80.       var7 <<= var6;
  81.  
  82.       while(true) {
  83.          var2 = false;
  84.          if ((var7 & 128) != 0) {
  85.             var3 = var3.├▒;
  86.          } else {
  87.             var3 = var3.├░;
  88.          }
  89.  
  90.          ++var6;
  91.          if (var3 == null) {
  92.             var3 = this.field_0;
  93.             var6 = 8;
  94.             var2 = true;
  95.          }
  96.  
  97.          if (!var2 && var3.├▓) {
  98.             var1.├â = var6;
  99.             if (var6 == 8) {
  100.                var1.├é = var4;
  101.                var1.├â = 0;
  102.             }
  103.  
  104.             var1.├ä -= var1.├é - var5;
  105.             deCode_code = var3.├│;
  106.             return true;
  107.          }
  108.  
  109.          if (var6 == 8) {
  110.             var6 = 0;
  111.             var1.├é = var4;
  112.             var7 = var1.├ü[var4];
  113.             ++var4;
  114.             if (var7 == 255) {
  115.                while(var1.├ü[var4] == 255) {
  116.                   ++var4;
  117.                }
  118.  
  119.                if (var1.├ü[var4] != 0) {
  120.                   var1.├ä -= var1.├é - var5;
  121.                   return false;
  122.                }
  123.  
  124.                ++var4;
  125.             }
  126.          } else {
  127.             var7 <<= 1;
  128.             if (var7 == 123456789) {
  129.                return true;
  130.             }
  131.          }
  132.       }
  133.    }
  134. }
  135.